#ifndef _PINHOLECAMERA_H
#define _PINHOLECAMERA_H

#include "Common.h"
#include "Ray.h"
#include "Primitive.h"
#include "Camera.h"

namespace Pandora
{

	class CPinholeCamera : public CCamera
	{
		CVector3 dx, dy;
	public:
		CPinholeCamera(int ow, int oh) : CCamera(ow, oh) {}
		CPinholeCamera(CPinholeCamera& c) : CCamera(c), dx(c.GetDX()), dy(c.GetDY()) {}
		CPinholeCamera(CPinholeCamera* c) : CCamera(c), dx(c->GetDX()), dy(c->GetDY()) {}

		void Init();

		CAMERAS GetType() { return PINHOLE; }
		void CalculateRayDirection(CRay& ray, float x, float y);

		CVector3 GetDX() { return dx; }
		CVector3 GetDY() { return dy; }
	};

}; //namespace Pandora

#endif /* _PINHOLECAMERA_H */